The approaches described in this section could be pursued but are not necessarily approaches that have previously been conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Guaranteeing quality of service (QoS) in computer networking depends on the ability to assign different priority to different data flows, users, or applications, or, in other words, guarantee a certain level of a data flow. Generally, the QoS depends on bandwidth, delay, jitter, packet dropping probability, and/or bit error rate. QoS guarantees are important in networks where the capacity is limited resource and, especially important for realtime or near realtime applications, since these applications often require fixed bandwidth and are delay sensitive.
When multiple users and applications share the same up or down link to transmit network packets, the QoS is needed to guarantee the priority of a user and application traffic, shape the traffic as configured and share the bandwidth efficiently. In a multi-core system, user and application packets can be processed and transmitted by different processing cores. Typically, QoS decisions are also made and coordinated by different cores. QoS algorithms can be very complex as, for example, is the case with hierarchical QoS algorithms. To guarantee the consistency of traffic information and QoS algorithm, only one core can access and execute the QoS algorithm at one time. Typically, locks are used to prevent different cores from executing the same logic at the same time.